extends Card

func init():
	att.atk = 1
	att.maxHp = 3
	att.cry = 10
	lv = 5
	type = TYPE.CREATURE
	camp = "m_JRbaijie"
	name = "黄道千万" #c_BJThec
	tab = "神祇 天外恶魔 白界"
	dec = "吸取敌方下回合的能量为你所用\n天赤道 蓝神半身 黄道零号\n塞克的数据库/灵海/骨爪/神目/第二心脏"
	tips = ["蓝神半身：入场时分别将3张神祇卡加入你的手牌和牌库","塞克的数据库：每回合获取一张机械牌，当你使用机械牌时释放等额消耗的随机法术且手中所有机械牌消耗减半。","塞克的灵海：我方使用卡牌会增加1能量上限(可突破上限10点)并恢复1能量抽1张牌，且每回合一次使用卡牌致能量耗尽时回复随机量的能量(不超过上限)。","塞克的骨爪：被攻击比自身低的单位伤害后会对所有敌人造成自身攻击等额伤害，受到来自当前生命比自身低的单位的伤害为0。","塞克的神目:我方每使用3张卡牌便可无效敌方卡牌1次。","塞克的第二心脏:入场时吞食你的神祇卡并将属性值赋予自身，离场时将自身的属性值赋予我方英雄。"]
	isUsable = false
	isDeathInGry = false
	isHalo = true
	isTrig = true

var lhnum = 0 #灵海加费用上限计数
var lhhl = true
var smnum = 0 #神目计数
var mcr = 0 #数据库费用记录

#黄道零号：你的回合开始时若你的牌库和手牌不为全空则返回手牌。并且死亡放逐沉默时也会返回手牌。也就是放逐自己再手里加个新的复制。
#蓝神半身：蓝神即光环标到英雄后给手里塞满神祇，以后会做。完整版蓝神会单独做个卡，会进一步将神祇卡的使用限制解除，无视费用和降神tab。
#天赤道：血怒血奴血族效果，再自带冲锋，攻击时放逐所有友方随从并吸取属性值。

func _connect():
	self.isSleep=false #天赤道
	connect("onCauseHurtStart",self,"runCauseHurtEnd") #天赤道
	connect("onPlusHp",self,"runPlusHp") #天赤道
	connect("onAtkStart",self,"runatk") #天赤道
	addSkill("k_JRthec") #黄道零号
	sys.scene.connect("onRoundStart", self, "runRoundStart") #数据库+灵海
	sys.scene.connect("onCardPlay",self,"onCardPlay") #数据库+灵海+神目
	sys.scene.connect("onCardPlayEnd",self,"rcpe") #灵海
	connect("onHurtStart",self,"run") #骨爪
	connect("onHurtEnd",self,"r") #骨爪
	getHero().getOppHero().addSkillObj(xijingdafa.new()) #战吼
	getHero().cry += getHero().getOppHero().maxCry+1 #战吼

class xijingdafa: #战吼
	extends Skill
	var bFlag = false
	func _init():
		.init()
		isIco = false
	func _connect():
		card.scene.connect("onRoundStart",self,"runner")
	func runner():
		card.getHero().cry = 0
		card.delSkill(self)

func runatk(card): #天赤道
	for i in sys.scene.getAllCard(getHero(),2,false):
		if i!=self:
			i.exile()
			self.att.atk += i.att.atk
			self.att.maxHp += i.att.maxHp

func runCauseHurtEnd(atkInfo): #天赤道
	if atkInfo.atkVal > 0 :
		var d = atkInfo.atkVal
		getHero().plusHp(d)
		plusHp(d)

func runPlusHp(val): #天赤道
	if val > 0:
		var chas1 = sys.scene.getAllCard(getHero(),1,false)
		var c1 = sys.rndListItem(chas1)
		if c1 != null:
			hurtCard(c1,val)

func onCardPlay(card):
	if card == self :return
	smnum += 1 #神目累计
	if card.getTeam() != getTeam() && smnum >= 3:
		smnum -= 3
		card.playStop = true #阻止卡牌释放
	mcr = card.att.cry#数据库
	if mcr > 9 :
		mcr = 9
	if card.getTeam() == getTeam() : #灵海判断
		lhnum += 1
		if lhnum < 10: #灵海加能量上限判断
			getHero().mostCry += 1
			getHero().maxCry += 1
		getHero().drawCard()
	if card.hasTab("机械") and card.getTeam() == getTeam():
		for i in getHero().hand.items:
			if i.hasTab("机械"):
				i.att.cry = i.att.cry/2
		var sc = sys.game.cardRndPool.rndItem(self, "filterCard")
		if sc != null:
			var id = sc.id
			var c = getHero().newCardInBattle(id)
			if c.useSelIf(null,null) == false:
				var sl = []
				for j in sys.scene.getAllCard(getHero(),0,1):
					if c.useSelIf(j,j.cell):
						sl.append(j)
				if sl.size() >0 :
					var inx = sys.rndRan(0,sl.size()-1)
					var cf = sl[inx]
					getHero().cardInBattle(c,cf.cell,false)
			else:
				getHero().cardInBattle(c,null,false)#官方范例随机释放	

func filterCard(obj:Card):
	if obj.type == cons.TYPE.MAGIC && obj.att.cry==mcr:
		return true

func runRoundStart():
	if sys.scene.roundhero != getHero():return
	var id1 = sys.game.cardRndPool.rndItem(self,"rj").id
	var a = getHero().newCard(id1)
	getHero().hand.addCard(a, false)
	lhhl = true

func rj(obj:Card):
	if obj.hasTab("机械")==true&&obj.hasTab("神祇")==false:
		return true
	return false

#以上数据库

func rcpe(card): #灵海回蓝
	if getHero().cry <= 0 && lhhl==true: #开关弄及费用条件
		lhhl = false
		getHero().cry += sys.rndRan(int(getHero().maxCry/2),getHero().maxCry) #回复能量上限一半至1倍的能量
	getHero().cry += 1

func r(atkInfo): #骨爪
	if atkInfo.hitCard == self && atkInfo.atkCard.att.hp <= self.att.hp:
		var d = atkInfo.atkVal
		atkInfo.atkVal -= d	

func run(atkInfo): #骨爪
	if atkInfo.hitCard == self && atkInfo.atkCard.att.atk <= self.att.atk:
		var ca = sys.scene.getAllCard(getHero(),1,true)
		for i in ca:
			hurtCard(i,getMgiAtk(),false)

#以下第二心脏及神祇机制，但是没有降神后无法使用的限制

func _haloFiter(card):
	if card.getTeam() == getTeam() && card.type == TYPE.HERO:
		return true
	return false

func _halo(card):
	if card.hasTab("降神"):card.addTab("降神")
	for i in range(3): #蓝神
		var id2 = sys.game.cardRndPool.rndItem(self,"rlanshen").id
		var aw = getHero().newCard(id2)
		if aw.hasTab("机械")==false:aw.addTab("机械")
		getHero().hand.addCardRnd(aw)
	for i in range(3):
		var id3 = sys.game.cardRndPool.rndItem(self,"rlanshen").id
		var aq = getHero().newCard(id3)
		if aq.hasTab("机械")==false:aq.addTab("机械")
		getHero().lib.addCardRnd(aq)  #蓝神
	var arrs = []
	var num = 0
	if getHero().hand.items != null:
		for i in getHero().hand.items:
			if i!=null:
				if i.hasTab("神祇") :#&& i.id!=self.id:
					num += 1
					arrs.append(i)
		for i in range(num):
			while arrs.size()>0:
				getHero().hand.eraseCard(arrs[0])
				self.att.atk += arrs[0].att.atk
				self.att.maxHp += arrs[0].att.maxHp
				arrs.erase(arrs[0])
	num = 0
	if getHero().lib.items != null:
		for i in getHero().lib.items:
			if i!=null:
				if i.hasTab("神祇") :#&& i.id!=self.id:
					num += 1
					arrs.append(i)
		for i in range(num):
			while arrs.size()>0:
				self.att.atk += arrs[0].att.atk
				self.att.maxHp += arrs[0].att.maxHp
				getHero().lib.eraseCard(arrs[0])
				arrs.erase(arrs[0])

func _haloDest(card):
	for j in range(9):
		for i in getHero().hand.items:
			if i!=null:
				if i.hasTab("神祇") :#&& i.id!=self.id: #吃手牌中的神祇卡
					getHero().hand.eraseCard(i)
					self.att.atk += i.att.atk
					self.att.maxHp += i.att.maxHp
		for i in getHero().lib.items:
			if i!=null:
				if i.hasTab("神祇") :#&& i.id!=self.id: #吃光牌库中的神祇卡
					getHero().hand.eraseCard(i)
					self.att.atk += i.att.atk
					self.att.maxHp += i.att.maxHp
	getHero().att.atk += self.att.atk
	getHero().att.maxHp += self.att.maxHp
	getHero().attBack.atk += self.att.atk
	getHero().attBack.maxHp += self.att.maxHp


func rlanshen(obj:Card):
	if obj.hasTab("神祇")==true :#&& obj.id!="c_BJThec":
		return true
	return false